home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / bipl.zip / IPD211.DOC < prev    next >
Text File  |  1993-02-08  |  30KB  |  1,454 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                The Icon Program Library; Version 8.8
  8.  
  9.                         Ralph E. Griswold
  10.     Department of Computer Science, The University of Arizona
  11.  
  12.  
  13. 1.__Introduction
  14.  
  15.    The Icon program library consists of Icon programs, pro-
  16. cedures, documentation, and data. Version 8 of Icon is required
  17. to run most of the library [1]. A few programs require Version
  18. 8.7 or higher [2].
  19.  
  20.    Section 7 lists the contents of the library. More compete
  21. documentation is contained in comments in the program and pro-
  22. cedure files, as well as in separate documentation files in some
  23. cases. You may wish to print these files to have documentation
  24. handy.
  25.  
  26.  
  27. 2.__Unloading_the_Library
  28.  
  29.    The library is designed to be unloaded in a hierarchy that
  30. contains separate directories for different kinds of material.
  31. Material that requires X-Icon [3] is segregated so that persons
  32. who are using Icon on platforms that do not support the X facili-
  33. ties do not need to unload these files.
  34.  
  35.    The normal directory structure for this version of the library
  36. is
  37.  
  38.  
  39.         |--data
  40.         |
  41.         |--docs
  42.         |
  43.         |--procs
  44.         |
  45.         |--progs
  46. |--ipl--|
  47.         |--xdata
  48.         |
  49.         |--xdocs
  50.         |
  51.         |--xprocs
  52.         |
  53.         |--xprogs
  54.  
  55.  
  56.  
  57. Directories whose names start with x contain material appropriate
  58. for X-Icon.  There also are packages that can be unloaded into
  59. their own directories.  See the distribution disks for specific
  60. unloading instructions.
  61.  
  62.  
  63.  
  64. IPD211a                       - 1 -              January 28, 1993
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. 3.__Link_Search_Paths
  74.  
  75.    Many of the programs link procedures. For example, options()
  76. is used by many programs for processing command-line options and
  77. is linked from ``ucode'' files obtained from translating
  78. options.icn.
  79.  
  80.    Icon searches for ucode files first in the current directory
  81. and then in directories specified by the IPATH environment vari-
  82. able.  IPATH consists of a sequence of blank-separated path
  83. names. The search is in the order of the names. For example, on a
  84. UNIX system running csh,
  85.  
  86.         setenv IPATH "../procs /usr/icon/ilib"
  87.  
  88.  
  89. results in a search for file names in link declarations first in
  90. the current directory, then in ../procs, and finally in
  91. /usr/icon/ilib.
  92.  
  93.    The method of setting IPATH varies from system to system.
  94. Since the current directory always is searched first, IPATH need
  95. not be set if ucode files are placed in the same directory as the
  96. program files.  See the next section.
  97.  
  98.  
  99. 4.__Installing_the_Library
  100.  
  101.    Installing the Icon program library consists of two steps: (1)
  102. translating the procedure files to produce ucode files and (2)
  103. compiling the programs.
  104.  
  105.    Ucode files are produced by translating the procedure files
  106. with the -c option to icont, as in
  107.  
  108.         icont -c options
  109.  
  110. which translates options.icn. The result is two ucode files named
  111. options.u1 and options.u2. The .u1 file contains the procedure's
  112. code and the .u2 file contains global information about the pro-
  113. cedure.  It is these files that a link declaration such as
  114.  
  115.         link options
  116.  
  117. needs.
  118.  
  119.    Scripts for translating the procedure files are provided with
  120. the distribution.  Once the procedure files have been translated,
  121. the ucode files can be moved to any place that is accessible from
  122. IPATH.
  123.  
  124.    The programs are compiled using icont without the -c option,
  125. as in
  126.  
  127.  
  128.  
  129.  
  130. IPD211a                       - 2 -              January 28, 1993
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.         icont deal
  140.  
  141.  
  142. which compiles deal.icn, a program that produces randomly
  143. selected bridge hands. The result of compiling a program is an
  144. ``icode'' file.  On some systems, the name of the icode file is
  145. the same as the name of the program file with the .icn suffix
  146. removed (for example, deal). On other systems, the icode file
  147. name has the suffix .icx in place of .icn (for example,
  148. deal.icx).  Scripts for compiling the programs are provided with
  149. the distribution.  Instructions for building the programs con-
  150. tained in separate packages are included with those packages.
  151.  
  152.    On systems that support the direct execution of icode files
  153. (UNIX, for example), an icode file can be run just by entering
  154. its name on the command line, as in
  155.  
  156.         deal
  157.  
  158.  
  159.    On other systems (MS-DOS, for example), icode files must be
  160. run using the Icon executor, iconx, as in
  161.  
  162.         iconx deal
  163.  
  164. (This also works on systems that support direct execution.) Note
  165. that the suffix (if any) need not be mentioned.
  166.  
  167.    Many Icon programs take arguments and options from the command
  168. line. Options are identified by dashes. For example, in
  169.  
  170.         deal -h 10
  171.  
  172. the -h 10 instructs deal to produce 10 hands.
  173.  
  174.    Icode files can be moved to any location. Ucode files are
  175. needed only during compilation. They need not be accessible when
  176. icode files are run.
  177.  
  178.  
  179. 5.__Usage_Notes
  180.  
  181.    It is important to read the documentation at the beginning of
  182. programs and procedures in the library. It includes information
  183. about special requirements, limitations, known bugs, and so
  184. forth.
  185.  
  186.    Some of the programs in the Icon program library are quite
  187. large and may require more memory than is available on some plat-
  188. forms.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196. IPD211a                       - 3 -              January 28, 1993
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205. 6.__Disclaimer
  206.  
  207.    The material in the Icon program library is contributed by
  208. users. It is in the public domain and can be freely copied,
  209. although author information should be left intact and any modifi-
  210. cations should be properly attributed.
  211.  
  212.    Neither the Icon Project nor the authors of material in the
  213. Icon program library assume any responsibility as to its correct-
  214. ness or its suitability for any purpose. The responsibility for
  215. use of the Icon program library lies entirely with the user.
  216.  
  217.  
  218. 7.__Content_Listing
  219.  
  220. 7.1__Programs_-_progs
  221.  
  222.      adlcheck.icn  check for bad address list data
  223.  
  224.      adlcount.icn  count address list entries
  225.  
  226.      adlfiltr.icn  filter address list entries
  227.  
  228.      adlfirst.icn  write first line of addresses
  229.  
  230.      adllist.icn   list address list fields
  231.  
  232.      adlsort.icn   sort address list entries
  233.  
  234.      animal.icn    play ``animal'' guessing game
  235.  
  236.      bj.icn        play blackjack game
  237.  
  238.      calc.icn      simulate desk calculator
  239.  
  240.      colm.icn      arrange data into columns
  241.  
  242.      concord.icn   produce concordance
  243.  
  244.      conman.icn    convert units
  245.  
  246.      countlst.icn  count items in a list
  247.  
  248.      cross.icn     display intersection of words
  249.  
  250.      crypt.icn     encript file
  251.  
  252.      csgen.icn     generate context-sensitive sentences
  253.  
  254.      cstrings.icn  print strings in C files
  255.  
  256.      deal.icn      deal bridge hands
  257.  
  258.  
  259.  
  260.  
  261.  
  262. IPD211a                       - 4 -              January 28, 1993
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.      delam.icn     delaminate file
  272.  
  273.      delamc.icn    delaminate file using tab characters
  274.  
  275.      detex.icn     strip LaTeX commands
  276.  
  277.      diffn.icn     show differences among files
  278.  
  279.      diffu.icn     show differences in files
  280.  
  281.      diffword.icn  list different words
  282.  
  283.      duplproc.icn  find duplicate declarations
  284.  
  285.      edscript.icn  produce script for ed(1)
  286.  
  287.      empg.icn      produce expression-benchmark program
  288.  
  289.      farb.icn      generate Farberisms
  290.  
  291.      farb2.icn     generate Farberisms
  292.  
  293.      filecnvt.icn  convert line terminators
  294.  
  295.      fileprnt.icn  display characters in file
  296.  
  297.      filter.icn    skeleton for generic filter
  298.  
  299.      findstr.icn   find imbedded character strings
  300.  
  301.      fixpath.icn   replace path in a binary file
  302.  
  303.      fnctmpl.icn   produce function templates
  304.  
  305.      format.icn    word wrap a range of text
  306.  
  307.      fset.icn      do set operations on file specifications
  308.  
  309.      gcomp.icn     produce complement of file specification
  310.  
  311.      genqueen.icn  solve arbitrary-size n-queens problem
  312.  
  313.      graphdem.icn  demonstrate simple bar graphics
  314.  
  315.      grpsort.icn   sort groups of lines
  316.  
  317.      hcal4unx.icn  combination Jewish/Civil calendar
  318.  
  319.      hebcalen.icn  combination Jewish/Civil calendar
  320.  
  321.      hebeng.icn    print mixed Hebrew and English text
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328. IPD211a                       - 5 -              January 28, 1993
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.      hufftab.icn   compute Huffman state transitions
  338.  
  339.      ibrow.icn     browse Icon files for declarations
  340.  
  341.      icalc.icn     simulate infix desk calculator
  342.  
  343.      icontent.icn  list Icon procedures
  344.  
  345.      icvt.icn      ASCII/EBCDIC program conversion
  346.  
  347.      idxtext.icn   creating indexed text-base
  348.  
  349.      igrep.icn     search in the style of egrep
  350.  
  351.      ihelp.icn     give on-line help for Icon
  352.  
  353.      iidecode.icn  decode text in style of uudecode
  354.  
  355.      iiencode.icn  encode text in the style of uuencode
  356.  
  357.      ilnkxref.icn  produce Icon link cross reference
  358.  
  359.      ilump.icn     lump linked Icon source files
  360.  
  361.      interpe.icn   interpret Icon expressions
  362.  
  363.      interpp.icn   interpret Icon programs
  364.  
  365.      ipldoc.icn    collect library documentation
  366.  
  367.      ipp.icn       preprocess Icon programs
  368.  
  369.      iprint.icn    print Icon program
  370.  
  371.      iprofile.icn  profile Icon procedure usage
  372.  
  373.      ipsort.icn    sort Icon procedures
  374.  
  375.      ipsplit.icn   split Icon program into files
  376.  
  377.      ipxref.icn    cross reference Icon program
  378.  
  379.      isrcline.icn  count code lines in Icon program
  380.  
  381.      istrip.icn    strip comments from Icon program
  382.  
  383.      itab.icn      entab an Icon program
  384.  
  385.      itags.icn     create tags file for Icon programs
  386.  
  387.      iundecl.icn   find undeclared Icon identifiers
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. IPD211a                       - 6 -              January 28, 1993
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.      iversion.icn  show icode version
  404.  
  405.      iwriter.icn   write Icon code to write input
  406.  
  407.      krieg.icn     play kriegspiel
  408.  
  409.      kross.icn     show intersections of strings
  410.  
  411.      kwic.icn      produce keywords in context
  412.  
  413.      labels.icn    format mailing labels
  414.  
  415.      lam.icn       laminate files
  416.  
  417.      latexidx.icn  process LaTeX idx file
  418.  
  419.      linden.icn    generate sentences in 0L-systems
  420.  
  421.      lisp.icn      interpret LISP programs
  422.  
  423.      loadmap.icn   show load map of UNIX object file
  424.  
  425.      longest.icn   write length of longest line in a file
  426.  
  427.      makepuzz.icn  make find-the-word puzzle
  428.  
  429.      memsum.icn    summarize Icon memory management
  430.  
  431.      miu.icn       generate strings from the MIU system
  432.  
  433.      monkeys.icn   generate random text
  434.  
  435.      morse.icn     convert string to Morse code
  436.  
  437.      mr.icn        read mail
  438.  
  439.      mtf3.icn      map tar file
  440.  
  441.      nim.icn       play the game of nim
  442.  
  443.      nocr.icn      convert MS-DOS text files to UNIX
  444.  
  445.      pack.icn      package multiple files
  446.  
  447.      paginate.icn  insert formfeeds
  448.  
  449.      parens.icn    produce random balanced strings
  450.  
  451.      pargen.icn    generate context-free parser
  452.  
  453.      parse.icn     parse simple statements
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460. IPD211a                       - 7 -              January 28, 1993
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.      parsex.icn    parse arithmetic expressions
  470.  
  471.      patchu.icn    implement UNIX-like patch
  472.  
  473.      post.icn      post news
  474.  
  475.      press.icn     archive files
  476.  
  477.      profile.icn   profile Icon programs
  478.  
  479.      proto.icn     show Icon syntactic forms
  480.  
  481.      pt.icn        produce parse table generator
  482.  
  483.      puzz.icn      create word search puzzle
  484.  
  485.      qt.icn        announce time in English
  486.  
  487.      queens.icn    generate solutions to the n-queens problem
  488.  
  489.      recgen.icn    generate context-free recognizer
  490.  
  491.      reply.icn     reply to news-articles or mail
  492.  
  493.      repro.icn     reproduce itself
  494.  
  495.      roffcmds.icn  list roff commands and macros
  496.  
  497.      rsg.icn       generate randomly selected sentences
  498.  
  499.      ruler.icn     write a character ruler
  500.  
  501.      scramble.icn  scramble a document
  502.  
  503.      shar.icn      crate shell archive UNIX
  504.  
  505.      shuffile.icn  shuffle lines in a file
  506.  
  507.      sing.icn      sing ``The Twelve Days of Christmas''
  508.  
  509.      snake.icn     play the snake game
  510.  
  511.      solit.icn     play solitaire
  512.  
  513.      sortname.icn  order by last name
  514.  
  515.      stars.icn     display ``star'' field
  516.  
  517.      strpsgml.icn  strip/translate SGML tags
  518.  
  519.      tablc.icn     tabulate characters in a file
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526. IPD211a                       - 8 -              January 28, 1993
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.      tablw.icn     tabulate words in a file
  536.  
  537.      textcnt.icn   tabulate properties of text file
  538.  
  539.      trim.icn      trim lines in a file
  540.  
  541.      ttt.icn       play tic-tac-toe
  542.  
  543.      turing.icn    simulate a Turing machine
  544.  
  545.      unique.icn    delete identical adjacent lines
  546.  
  547.      unpack.icn    unpackage files
  548.  
  549.      verse.icn     generate bizarre verses
  550.  
  551.      vnq.icn       display solutions to n-queens problem
  552.  
  553.      xtable.icn    show character code translations
  554.  
  555.      yahtz.icn     play yahtzee
  556.  
  557.      yescr.icn     convert UNIX files to DOS format
  558.  
  559.      zipsort.icn   sort mailing labels by ZIP code
  560.  
  561. 7.2__Programs_-_xprogs
  562.  
  563.      bitplane.icn  demonstrate bitplanes
  564.  
  565.      bme.icn       edit bitmap
  566.  
  567.      calib.icn     calibrate color monitor
  568.  
  569.      coloralc.icn  test color allocation
  570.  
  571.      colrname.icn  browse color names
  572.  
  573.      drip.icn      demonstrate color map animation
  574.  
  575.      etch.icn      distributed Etch-A-Sketch
  576.  
  577.      fev.icn       display text in fisheye view
  578.  
  579.      flake.icn     draw a fractal snowflake
  580.  
  581.      fract.icn     demonstrate fractal lines
  582.  
  583.      hextile.icn   show a tiling of a bitmap
  584.  
  585.      hvc.icn       pick colors for Tek HVC space
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592. IPD211a                       - 9 -              January 28, 1993
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.      koch.icn      demonstrate Koch curves
  602.  
  603.      lsys.icn      experiment with lindenmeyer systems
  604.  
  605.      pme.icn       edit pixmap
  606.  
  607.      sensdemo.icn  demonstrate sensor routines
  608.  
  609.      sier.icn      generalized Sierpinski's triangle
  610.  
  611.      snapper.icn   display images
  612.  
  613.      spiral.icn    draw polygonal spirals
  614.  
  615.      spiro.icn     display spirograph lines
  616.  
  617.      splat.icn     drop some paint splatters in a window
  618.  
  619.      textures.icn  show various 4x4 stipple patterns
  620.  
  621.      tgdemo.icn    demonstrate turtle graphics
  622.  
  623.      travels.icn   animate the traveling salesman problem
  624.  
  625.      trycolor.icn  investigate color specifications
  626.  
  627.      tryfont.icn   demonstrate X font rankings
  628.  
  629.      wheel.icn     show wheel of colors
  630.  
  631.      xed.icn       edit text in a window
  632.  
  633.      xprompt.icn   prompt in a window
  634.  
  635.      xscroll.icn   scroll image
  636.  
  637. 7.3__Procedures_-_procs
  638.  
  639.      adjuncts.icn  gettext and idxtext support
  640.  
  641.      adlutils.icn  process address lists
  642.  
  643.      allof.icn     conjunction control operation
  644.  
  645.      ansi.icn      ANSI-based terminal control
  646.  
  647.      argparse.icn  parse pseudo-command-line
  648.  
  649.      array.icn     n-dimensional arrays
  650.  
  651.      asciinam.icn  ASCII name of unprintable character
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658. IPD211a                      - 10 -              January 28, 1993
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.      bincvt.icn    convert binary data
  668.  
  669.      binocoef.icn  binomial coefficient
  670.  
  671.      bold.icn      enbolden and underscore text
  672.  
  673.      buffer.icn    buffered input and output
  674.  
  675.      calendat.icn  get date from Julian Day Number
  676.  
  677.      codeobj.icn   encode and decode Icon data
  678.  
  679.      collate.icn   collate and decollate strings
  680.  
  681.      colmize.icn   arrange data into columns
  682.  
  683.      commaize.icn  add commas to real or integers
  684.  
  685.      complete.icn  complete partial input string
  686.  
  687.      complex.icn   perform complex arithmetic
  688.  
  689.      currency.icn  format currency
  690.  
  691.      date.icn      produce date
  692.  
  693.      datetime.icn  date manipulation
  694.  
  695.      dif.icn       check for differences
  696.  
  697.      distance.icn  compute distance in n-dimensional space
  698.  
  699.      dosfiles.icn  get MS-DOS file names
  700.  
  701.      ebcdic.icn    convert between ASCII and EBCDIC
  702.  
  703.      escape.icn    interpret Icon literal escapes
  704.  
  705.      everycat.icn  generating all concatenations
  706.  
  707.      factorl.icn   computing factorials
  708.  
  709.      fcopy.icn     copy a file
  710.  
  711.      feval.icn     evaluate string as function call
  712.  
  713.      filedim.icn   compute file dimensions
  714.  
  715.      filename.icn  parse file names
  716.  
  717.      filetext.icn  read text file into a list
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724. IPD211a                      - 11 -              January 28, 1993
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.      findre.icn    find regular expression
  734.  
  735.      full13th.icn  give days when a full moon occurs on
  736.  
  737.      fullimag.icn  produce complete image of structured data
  738.  
  739.      gauss.icn     compute Gaussian distributions
  740.  
  741.      gcd.icn       compute greatest common denominator
  742.  
  743.      gdl.icn       get directory list
  744.  
  745.      gener.icn     generate miscellaneous sequences
  746.  
  747.      getchlib.icn  getch for UNIX
  748.  
  749.      getkeys.icn   get keys for a gettext file
  750.  
  751.      getpaths.icn  generate elements in path environment variable
  752.  
  753.      gettext.icn   gettext (simple text-base routines)
  754.  
  755.      glabels.icn   produce graph ticks
  756.  
  757.      gmean.icn     compute geometric mean
  758.  
  759.      hexcvt.icn    hexadecimal conversion
  760.  
  761.      hostname.icn  produce host name
  762.  
  763.      huffstuf.icn  huffman coding
  764.  
  765.      hyperbol.icn  hyperbolic functions
  766.  
  767.      ibench.icn    support Icon benchmarking
  768.  
  769.      ichartp.icn   a simple chart parser
  770.  
  771.      identity.icn  produce identities for Icon types
  772.  
  773.      ifncs.icn     wrappers for function tracing
  774.  
  775.      iftrace.icn   trace Icon function calls
  776.  
  777.      image.icn     produce images of Icon values
  778.  
  779.      inbits.icn    read variable-length characters
  780.  
  781.      inserts.icn   build tables with duplicate keys
  782.  
  783.      intstr.icn    create string from bits
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790. IPD211a                      - 12 -              January 28, 1993
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.      iolib.icn     termlib-type tools for MS-DOS and UNIX
  800.  
  801.      ipause.icn    pause within an Icon program
  802.  
  803.      irandom.icn   randomize the random number generator
  804.  
  805.      iscreen.icn   screen functions
  806.  
  807.      isort.icn     customizable sorting
  808.  
  809.      ispf.icn      communicate between Icon and ISPF
  810.  
  811.      itlib.icn     termlib-type tools
  812.  
  813.      itlibdos.icn  termlib-type tools (MS-DOS version)
  814.  
  815.      ivalue.icn    convert string to Icon value
  816.  
  817.      julian.icn    produce Julian Day Number
  818.  
  819.      jumpque.icn   jump element to head of queue
  820.  
  821.      largint.icn   large integer arithmetic
  822.  
  823.      lastname.icn  produce last name
  824.  
  825.      lcomb.icn     generate lists of combinations
  826.  
  827.      list2tab.icn  write list as tab-separated string
  828.  
  829.      lmap.icn      map list elements
  830.  
  831.      longstr.icn   match longest string
  832.  
  833.      lpermute.icn  permute elements in a list
  834.  
  835.      lscan.icn     quasi scanning routines for lists
  836.  
  837.      mapbit.icn    map string into bit representation
  838.  
  839.      matchlib.icn  lexical matching
  840.  
  841.      math.icn      perform mathematical computations
  842.  
  843.      matrix.icn    matrix manipulation
  844.  
  845.      morse.icn     convert string to Morse code
  846.  
  847.      namepfx.icn   produce prefix portion of name
  848.  
  849.      ngrams.icn    generate n-grams
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856. IPD211a                      - 13 -              January 28, 1993
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.      numbers.icn   format and convert numbers
  866.  
  867.      nxtprime.icn  find the next prime
  868.  
  869.      object.icn    encode and decode Icon values
  870.  
  871.      options.icn   get command-line options
  872.  
  873.      outbits.icn   write variable-length characters
  874.  
  875.      packunpk.icn  pack and unpack packed-decimal strings
  876.  
  877.      parscond.icn  condense parse tree
  878.  
  879.      patch.icn     UNIX-like patch(1)
  880.  
  881.      patterns.icn  SNOBOL4-style pattern matching
  882.  
  883.      patword.icn   find letter patterns
  884.  
  885.      pdae.icn      programmer-defined argument evaluation
  886.  
  887.      pdco.icn      programmer-defined control operations
  888.  
  889.      permute.icn   permutations, combinations, and such
  890.  
  891.      phoname.icn   generate letters for phone numbers
  892.  
  893.      plural.icn    produce plural of English noun
  894.  
  895.      pom.icn       compute phase of the moon
  896.  
  897.      popen.icn     pipes
  898.  
  899.      printcol.icn  format columnar data
  900.  
  901.      printf.icn    printf-style formatting
  902.  
  903.      prockind.icn  produce code according to kind of procedure
  904.  
  905.      procname.icn  produce name of procedure
  906.  
  907.      progary.icn   place program in a array
  908.  
  909.      radcon.icn    radix conversion
  910.  
  911.      randreal.icn  randomly select real number in range
  912.  
  913.      ranseq.icn    generate all integers over a range, randomly
  914.  
  915.      rational.icn  arithmetic on rational numbers
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922. IPD211a                      - 14 -              January 28, 1993
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.      readline.icn  read and write lines in pieces
  932.  
  933.      readtbl.icn   read user-created stripsgml table
  934.  
  935.      real2int.icn  various real-to-integer conversions
  936.  
  937.      rec2tab.icn   write record as tab-separated string
  938.  
  939.      recog.icn     main procedure for recognition
  940.  
  941.      regexp.icn    regular expression pattern matching
  942.  
  943.      rewrap.icn    advanced line rewrap utility
  944.  
  945.      rexx.icn      communicate between Icon and Rexx
  946.  
  947.      saytime.icn   produce the time in English
  948.  
  949.      scanset.icn   set up string scanning procedures
  950.  
  951.      segment.icn   segment string
  952.  
  953.      senten1.icn   generate sentences
  954.  
  955.      sentence.icn  generate sentences in file
  956.  
  957.      seqimage.icn  produce string image of Icon result sequence
  958.  
  959.      shquote.icn   quote word for UNIX-like shells
  960.  
  961.      shuffle.icn   shuffle values
  962.  
  963.      signed.icn    put bits into signed integer
  964.  
  965.      slashbal.icn  balanced scanning with backslash escaping
  966.  
  967.      slshupto.icn  upto scanning with backslash escaping
  968.  
  969.      snapshot.icn  show snapshot of Icon string scanning
  970.  
  971.      soundex.icn   produce Soundex code for name
  972.  
  973.      soundex1.icn  Soundex algorithm
  974.  
  975.      statemap.icn  table of states and abbreviations
  976.  
  977.      strings.icn   string utilities
  978.  
  979.      strip.icn     strip characters from a string
  980.  
  981.      stripcom.icn  strip comments out of Icon line
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988. IPD211a                      - 15 -              January 28, 1993
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.      stripunb.icn  strip unbalanced material
  998.  
  999.      structs.icn   structure operations
  1000.  
  1001.      tab2list.icn  insert tab-separated strings in list
  1002.  
  1003.      tab2rec.icn   insert tab-separated strings in records
  1004.  
  1005.      tblset.icn    set-theoretic table manipulation
  1006.  
  1007.      tblutil.icn   table manipulation
  1008.  
  1009.      tclass.icn    classify values as atomic or composite
  1010.  
  1011.      tempname.icn  get temporary file name
  1012.  
  1013.      title.icn     produce title portion of name
  1014.  
  1015.      titleset.icn  produce set of titles
  1016.  
  1017.      tuple.icn     process n-tuples
  1018.  
  1019.      twt.icn       create two-way table
  1020.  
  1021.      typecode.icn  produce letter code for Icon type
  1022.  
  1023.      unsigned.icn  put bits unsigned integer
  1024.  
  1025.      usage.icn     service functions
  1026.  
  1027.      varsub.icn    perform UNIX-shell-style variable substitution
  1028.  
  1029.      version.icn   produce Icon version number
  1030.  
  1031.      wildcard.icn  UNIX-like wild-card pattern matching
  1032.  
  1033.      wrap.icn      wrap output lines
  1034.  
  1035.      ximage.icn    produce string image of data
  1036.  
  1037.      xrotate.icn   rotate values in list or record
  1038.  
  1039. 7.4__Procedures_-_xprocs
  1040.  
  1041.      barchart.icn  dynamically growing barchart
  1042.  
  1043.      button.icn    pushbutton sensors
  1044.  
  1045.      clip.icn      clipboard operations
  1046.  
  1047.      control.icn   controls for windows
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054. IPD211a                      - 16 -              January 28, 1993
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.      decay.icn     decaying-displays for windows
  1064.  
  1065.      evmux.icn     window event multiplexor
  1066.  
  1067.      evqueue.icn   queued X events
  1068.  
  1069.      glib.icn      graphics
  1070.  
  1071.      imagedim.icn  getting X image dimensions
  1072.  
  1073.      lsystem.icn   Lindenmeyer systems support
  1074.  
  1075.      optwindw.icn  open window with standard options
  1076.  
  1077.      overlay.icn   overlay an image in a window
  1078.  
  1079.      slider.icn    slider sensors for use with windows
  1080.  
  1081.      stipplib.icn  stippling
  1082.  
  1083.      strpchrt.icn  dynamic stripchart for windows
  1084.  
  1085.      tcolors.icn   create a table of window bindings
  1086.  
  1087.      textedit.icn  window-oriented text editing
  1088.  
  1089.      turtle.icn    turtle-graphics interface
  1090.  
  1091.      vbuttons.icn  buttons
  1092.  
  1093.      vcoupler.icn  coupler variables
  1094.  
  1095.      vdialog.icn   dialog boxes
  1096.  
  1097.      vframe.icn    pane frame vidgets
  1098.  
  1099.      vgrid.icn     vidget grids
  1100.  
  1101.      vidgets.icn   vidgets
  1102.  
  1103.      viface.icn    interfacing
  1104.  
  1105.      vmenu.icn     vidget menus
  1106.  
  1107.      vpane.icn     vidget panes
  1108.  
  1109.      vradio.icn    radio buttons
  1110.  
  1111.      vscroll.icn   scrollbars
  1112.  
  1113.      vslider.icn   sliders
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120. IPD211a                      - 17 -              January 28, 1993
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.      vstd.icn      standard lookups
  1130.  
  1131.      vstyle.icn    drawing buttons
  1132.  
  1133.      vtext.icn     textual vidgets
  1134.  
  1135.      vtools.icn    vidget tools
  1136.  
  1137.      wipe.icn      wipe window area
  1138.  
  1139.      xbfont.icn    X font selection
  1140.  
  1141.      xcontrst.icn  find a contrasting color
  1142.  
  1143.      xkeysyms.icn  produce X key symbols
  1144.  
  1145.      xplane.icn    bitplane manipulation
  1146.  
  1147.      xshade.icn    set window color
  1148.  
  1149. 7.5__Data_-_data
  1150.  
  1151.      a2n.csg       data for csg.icn
  1152.  
  1153.      abc.csg       data for csg.icn
  1154.  
  1155.      abcd.csg      data for csg.icn
  1156.  
  1157.      add.lbl       sample address labels
  1158.  
  1159.      an2.csg       data for csg.icn
  1160.  
  1161.      bb3.tur       data for turing.icn
  1162.  
  1163.      cc.tur        data for turing.icn
  1164.  
  1165.      chart.gmr     data for ichartp.icn
  1166.  
  1167.      cm.tur        data for turing.icn
  1168.  
  1169.      colors.rsg    data for rsg.icn
  1170.  
  1171.      conman.sav    data base for conman.icn
  1172.  
  1173.      darwin.txt    plain text
  1174.  
  1175.      dickens.txt   plain text
  1176.  
  1177.      dylan.txt     plain text
  1178.  
  1179.      egg.krs       data for kross.icn
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186. IPD211a                      - 18 -              January 28, 1993
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.      exp.rsg       data for rsg.icn
  1196.  
  1197.      farber.sen    Farberisms
  1198.  
  1199.      gilbert.txt   plain text
  1200.  
  1201.      gmr1.lin      data for linden.icn
  1202.  
  1203.      gmr2.lin      data for linden.icn
  1204.  
  1205.      gmr3.lin      data for linden.icn
  1206.  
  1207.      gmr4.lin      data for linden.icn
  1208.  
  1209.      header        program library header skeleton
  1210.  
  1211.      hebcalen.dat  data for hebcalen.icn
  1212.  
  1213.      icon.wrd      words containing the substring ``icon''
  1214.  
  1215.      iconproj.lbl  address labels for the Icon Project
  1216.  
  1217.      ihelp.dat     data for ihelp.icn
  1218.  
  1219.      joyce1.txt    plain text
  1220.  
  1221.      joyce2.txt    plain text
  1222.  
  1223.      joyce3.txt    plain text
  1224.  
  1225.      noci.wrd      words containing the substring ``noci''
  1226.  
  1227.      ones.tur      data for turing.icn
  1228.  
  1229.      palin.sen     palindromic sentences
  1230.  
  1231.      poe.txt       plain text
  1232.  
  1233.      poem.rsg      data for rsg.icn
  1234.  
  1235.      pt1.gmr       data for pt.icn
  1236.  
  1237.      pt2.gmr       data for pt.icn
  1238.  
  1239.      pt3.gmr       data for pt.icn
  1240.  
  1241.      pt4.gmr       data for pt.icn
  1242.  
  1243.      pt5.gmr       data for pt.icn
  1244.  
  1245.      pt6.gmr       data for pt.icn
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252. IPD211a                      - 19 -              January 28, 1993
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.      red.lin       data for linden.icn
  1262.  
  1263.      sen.rsg       data for rsg.icn
  1264.  
  1265.      spencer.txt   plain text
  1266.  
  1267.      termcap.dos   MS-DOS termcap data
  1268.  
  1269.      termcap2.dos  alternative MS-DOS termcap data
  1270.  
  1271.      verse.dat     vocabulary file for verse.icn
  1272.  
  1273.      z1.lin        data for linden.icn
  1274.  
  1275.      z2.lin        data for linden.icn
  1276.  
  1277.      z3.lin        data for linden.icn
  1278.  
  1279.      z4.lin        data for linden.icn
  1280.  
  1281. 7.6__Data_-_xdata
  1282.  
  1283.    There is no data specific to X-Icon yet.
  1284.  
  1285. 7.7__Documentation_-_docs
  1286.  
  1287.      address.doc   documentation for address procedures
  1288.  
  1289.      hebcalen.hlp  documentation for hebcalen.icn
  1290.  
  1291.      hebcalpi.hlp  documentation for hebcalpi.icn
  1292.  
  1293.      iconmake.doc  Make skeleton for Icon
  1294.  
  1295.      ipp.doc       supplementary documentation for ipp.icn
  1296.  
  1297.      mr.man        manual page for mr.icn
  1298.  
  1299.      post.1        manual page source for post.icn
  1300.  
  1301.      procs.kwc     keyword-in-context listing for procs
  1302.  
  1303.      progs.kwc     keyword-in-context listing for progs
  1304.  
  1305.      pt.man        manual page for pt.icn
  1306.  
  1307. 7.8__Documentation_-_xdocs
  1308.  
  1309.      vidget.ps     PostScript documentation for X-Icon toolkit
  1310.  
  1311.      xib.ps        PostScript documentation for X-Icon interface
  1312.                    interface builder
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318. IPD211a                      - 20 -              January 28, 1993
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.      xprocs.kwc    keyword-in-context listing for xprocs
  1328.  
  1329.      xprogs.kwc    keyword-in-context listing for xprogs
  1330.  
  1331. 7.9__Packages_-_Icon
  1332.  
  1333.      debug         Icon debugger
  1334.  
  1335.      idol          Idol; object-oriented Icon written in Icon
  1336.  
  1337. 7.10__Packages_-_X-Icon
  1338.  
  1339.      xib           X-Icon interface builder
  1340.  
  1341.  
  1342. 8.__Contributions_to_the_Icon_Program_Library
  1343.  
  1344.    New material for the Icon program library always is welcome.
  1345. It must be prepared in the style exemplified by the material in
  1346. this release. Adequate documentation is essential; it must be in
  1347. the format used for present library - we do not have the
  1348. resources to rewrite or reformat contributed documentation. Test
  1349. data also must be provided - at least enough so that we can
  1350. determine that the contributed program material is basically
  1351. functional. In cases where test data is impractical because of
  1352. the nature of the contribution, instructions for testing must be
  1353. provided.
  1354.  
  1355.    Program material can be submitted by electronic mail at one of
  1356. the addresses given in the next section or on Macintosh or MS-DOS
  1357. disks.  Printed listings are not acceptable.
  1358.  
  1359.    Contributions to the Icon program library must be free of any
  1360. restrictions and may not carry copyright notices, even if accom-
  1361. panied by permission for unlimited copying.
  1362.  
  1363.    The decision to include contributed material in the Icon pro-
  1364. gram library rests entirely with the Icon Project.  The Icon Pro-
  1365. ject reserves the right to modify submissions to conform to
  1366. library standards, to correct errors, and to make improvements.
  1367. Contributors will be consulted in the case of substantial
  1368. changes.
  1369.  
  1370.  
  1371. 9.__Feedback
  1372.  
  1373.  
  1374.    If you encounter problems with material in the Icon program
  1375. library, please let us know.  If you can provide corrections or
  1376. improvements to library material, please send them by electronic
  1377. mail or on a diskette.
  1378.  
  1379.    We can be reached as follows:
  1380.  
  1381.  
  1382.  
  1383.  
  1384. IPD211a                      - 21 -              January 28, 1993
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.         Icon Project
  1394.         Department of Computer Science
  1395.         Gould-Simpson Building
  1396.         The University of Arizona
  1397.         Tucson, AZ   85721
  1398.         U.S.A.
  1399.         (602) 621-8448 (voice)
  1400.         (602) 621-4246 (fax)
  1401.         icon-project@cs.arizona.edu     (Internet)
  1402.         ... uunet!arizona!icon-project     (uucp)
  1403.  
  1404.  
  1405. Acknowledgements
  1406.  
  1407.    Dozens of persons have contributed material to this release of
  1408. the Icon program library. See the program material itself for
  1409. authorship information.
  1410.  
  1411. References
  1412.  
  1413.  
  1414. 1.   R. E. Griswold and M. T. Griswold, The Icon Programming
  1415.      Language, Prentice-Hall, Inc., Englewood Cliffs, NJ, second
  1416.      edition, 1990.
  1417.  
  1418. 2.   R. E. Griswold, C. L. Jeffery, G. M. Townsend and K. Walker,
  1419.      Version 8.7 of the Icon Programming Language, The Univ. of
  1420.      Arizona Icon Project Document IPD188, 1992.
  1421.  
  1422. 3.   C. L. Jeffery, X-Icon: An Icon Windows Interface; Version 2,
  1423.      The Univ. of Arizona Tech. Rep. 92-26, 1992.
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450. IPD211a                      - 22 -              January 28, 1993
  1451.  
  1452.  
  1453.  
  1454.